home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / fortran / toolpack.000 / toolpack / toolpack1.2 / tools / istpl / PLBLK.MAC.f < prev    next >
Encoding:
Text File  |  1989-03-04  |  23.9 KB  |  696 lines

  1. C---------------------------------------------------------
  2. C    TOOLPACK/1    Release: 2.4
  3. C---------------------------------------------------------
  4. C---------------------------------------------------------
  5. C    TOOLPACK/1    Release: 2.4
  6. C---------------------------------------------------------
  7.  
  8. C The following defines must have these values as OUTTOK/RDTOK expect
  9. C them to - if they must be changed, look at OUTTOK & RDTOK.
  10.  
  11.  
  12. C ----------------------------------------------------------------------
  13. C
  14. C       P O L B L K  -  Polish's Block Data
  15. C
  16.  
  17.         BLOCK DATA POLBLK
  18.  
  19. C---------------------------------------------------------
  20. C    TOOLPACK/1    Release: 2.4
  21. C---------------------------------------------------------
  22. C
  23. C  TKLAST = LAST TOKEN NUMBER
  24. C
  25.       INTEGER TZEOF ,TASSIG,TBACKS,TBLOCK,TCALL ,TCLOSE,TCOMMO,TCONTI,
  26.      +        TDATA ,TDO   ,TDIMEN,TELSE ,TELSIF,TEND  ,TENDFI,TENDIF,
  27.      +        TENTRY,TEQUIV,TEXTER,TFUNCT,TFORMA,TGOTO ,TIF   ,TIMPLI,
  28.      +        TINQUI,TINTRI,TOPEN ,TPARAM,TPAUSE,TPRINT,TPROGR,TREAD ,
  29.      +        TRETUR,TREWIN,TSAVE ,TSTOP ,TSUBRO,TTHEN ,TTO   ,TWRITE,
  30.      +        TINTEG,TREAL ,TDOUBL,TCOMPL,TLOGIC,TCHARA,TDCMPL,TCOMMA,
  31.      +        TEQUAL,TCOLON,TLPARN,TRPARN,TLE   ,TLT   ,TEQ   ,TNE   ,
  32.      +        TGE   ,TGT   ,TAND  ,TOR   ,TEQV  ,TNEQV ,TNOT  ,TSTAR ,
  33.      +        TDSTAR,TPLUS ,TMINUS,TSLASH,TCNCAT,TDCNST,TLCNST,TRCNST,
  34.      +        TPCNST,TCCNST,THCNST,TNAME ,TFIELD,TSCALE,TZEOS ,TCMMNT,
  35.      +        TFMTKD,TENDKD,TERRKD,TKLAST
  36.       PARAMETER (TZEOF = 1,TASSIG= 2,TBACKS= 3,TBLOCK= 4,TCALL = 5,
  37.      +           TCLOSE= 6,TCOMMO= 7,TCONTI= 8,TDATA = 9,TDO   =10,
  38.      +           TDIMEN=11,TELSE =12,TELSIF=13,TEND  =14,TENDFI=15,
  39.      +           TENDIF=16,TENTRY=17,TEQUIV=18,TEXTER=19,TFUNCT=20,
  40.      +           TFORMA=21,TGOTO =22,TIF   =23,TIMPLI=24,TINQUI=25,
  41.      +           TINTRI=26,TOPEN =27,TPARAM=28,TPAUSE=29,TPRINT=30,
  42.      +           TPROGR=31,TREAD =32,TRETUR=33,TREWIN=34,TSAVE =35,
  43.      +           TSTOP =36,TSUBRO=37,TTHEN =38,TTO   =39,TWRITE=40,
  44.      +           TINTEG=41,TREAL =42,TDOUBL=43,TCOMPL=44,TLOGIC=45,
  45.      +           TCHARA=46,TDCMPL=47,TCOMMA=48,TEQUAL=49,TCOLON=50,
  46.      +           TLPARN=51,TRPARN=52,TLE   =53,TLT   =54,TEQ   =55,
  47.      +           TNE   =56,TGE   =57,TGT   =58,TAND  =59,TOR   =60,
  48.      +           TEQV  =61,TNEQV =62,TNOT  =63,TSTAR =64,TDSTAR=65,
  49.      +           TPLUS =66,TMINUS=67,TSLASH=68,TCNCAT=69,TDCNST=70,
  50.      +           TLCNST=71,TRCNST=72,TPCNST=73,TCCNST=74,THCNST=75,
  51.      +           TNAME =76,TFIELD=77,TSCALE=78,TZEOS =79,TCMMNT=80,
  52.      +           TFMTKD=81,TENDKD=82,TERRKD=83,TKLAST=83)
  53.  
  54.  
  55.         COMMON/TYPES/ STTYPE
  56.         INTEGER STTYPE(TKLAST)
  57.  
  58.         COMMON/SPACNG/SPBEF,SPAFT
  59.         INTEGER SPBEF(-2:TKLAST,0:2),SPAFT(-2:TKLAST,0:2)
  60.  
  61.         COMMON/XTTYPE/TMPLUS,TMMINU
  62.         INTEGER TMPLUS,TMMINU
  63.  
  64.         COMMON/INTBRK/BRPRIO
  65.         INTEGER BRPRIO(-2:TKLAST,0:2)
  66.  
  67.         COMMON/BLINES/BLAFT,BLBEF,BLADEC,BLCHAR
  68.         INTEGER BLAFT(-2:TKLAST),BLBEF(-2:TKLAST),BLCHAR
  69.         LOGICAL BLADEC
  70.  
  71.         COMMON/MARGIN/LMARGS,RMARGS,LMARGC,RMARGC
  72.         INTEGER LMARGS,RMARGS,LMARGC,RMARGC
  73.  
  74.         COMMON/CONTIN/CONCHR,CONCNT
  75.         INTEGER CONCHR,CONCNT
  76.  
  77.         COMMON/LFORM/LABELF,LABELC
  78.         INTEGER LABELF,LABELC
  79.  
  80.         COMMON/INDENT/INDDO,INDIF,INDCON,INDCMT,MAXIND
  81.         INTEGER INDDO,INDIF,INDCON,MAXIND
  82.         LOGICAL INDCMT
  83.  
  84.         COMMON/SEQNUM/SEQINI,SEQINC,SEQDIG,SEQFIL,SEQRQD
  85.         INTEGER SEQINI,SEQINC,SEQDIG,SEQFIL
  86.         LOGICAL SEQRQD
  87.  
  88.         COMMON/RELBL/FLBINI,FLBINC,SLBINI,SLBINC,RLBFMT,RLBSTM
  89.         INTEGER FLBINI,FLBINC,SLBINI,SLBINC
  90.         LOGICAL RLBFMT,RLBSTM
  91.  
  92.         COMMON/DOCON/DOCONI,NDOCON,DOCONS,IOTHCO
  93.         LOGICAL DOCONI,IOTHCO
  94.         INTEGER NDOCON,DOCONS(30)
  95.  
  96.         COMMON/CMT/CMMODE,CBOX,CBTOP,CBSIDE,CMCHAR
  97.         INTEGER CMMODE,CBOX,CBTOP,CBSIDE,CMCHAR
  98.  
  99.         COMMON/CASE/KWCASE,IDCASE,STRCAS,CMCASE,FFCASE
  100.         INTEGER KWCASE,IDCASE,STRCAS,CMCASE,FFCASE
  101.  
  102.         COMMON/ASGLUP/VLEN
  103.         INTEGER VLEN
  104.  
  105.         COMMON/MOVFMT/MOVEF,MFFLAG
  106.         LOGICAL MOVEF,MFFLAG
  107.  
  108.         COMMON/DECLUP/DLUP,DLEN,DLUPOS
  109.         LOGICAL DLUP
  110.         INTEGER DLEN,DLUPOS
  111.  
  112.         COMMON/TRCOPT/TRACE
  113.         LOGICAL TRACE
  114.  
  115.         COMMON/OPT15C/INDDOC,DELSED,BRKLIF
  116.         LOGICAL INDDOC,DELSED,BRKLIF
  117.  
  118.         COMMON/ERROPT/ERRCMT
  119.         LOGICAL ERRCMT
  120.  
  121.         COMMON/CVTOPT/CVTHFM,FMSBRK
  122.         LOGICAL CVTHFM,FMSBRK
  123.  
  124.         COMMON/REMTOK/RMOPCF
  125.         LOGICAL RMOPCF
  126.  
  127.         SAVE
  128.  
  129.         INTEGER TMPLUV,TMMINV
  130.         PARAMETER (TMPLUV=-1,TMMINV=-2)
  131.  
  132. C
  133. C Table to drive statement type selector
  134. C
  135. C Values are 0=illegal initial token for statement
  136. C            1=comment
  137. C            2=FORMAT
  138. C            3=declaration
  139. C            4=executable
  140.  
  141.         DATA STTYPE/0,4,4,3,4,4,3,4,3,4,3,4,4,0,4,4,3,3,3,3,2,4,
  142.      +              4,3,4,3,4,3,4,4,3,4,4,4,3,4,3,4,0,4,3,3,
  143.      +              3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  144.      +              0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0/
  145.  
  146. C ***************SPACING SPECIAL VALUES
  147. C       -1 (SPBEF) = One space iff previous token not a name or "("
  148. C       -1 (SPAFT) = One space iff next token not ")" or "," or operator
  149. C       -2 = Error
  150. C       -3 (SPAFT) = One space iff next token not "*"
  151.  
  152. C Monadic minus sign
  153.         DATA (SPBEF(TMMINV,I),I=0,2)/0,0,0/
  154.         DATA (SPAFT(TMMINV,I),I=0,2)/0,0,0/
  155. C Monadic plus sign
  156.         DATA (SPBEF(TMPLUV,I),I=0,2)/0,0,0/
  157.         DATA (SPAFT(TMPLUV,I),I=0,2)/0,0,0/
  158. C <EOF>
  159.         DATA (SPBEF(TZEOF,I),I=0,2)/-2,-2,-2/
  160.         DATA (SPAFT(TZEOF,I),I=0,2)/-2,-2,-2/
  161. C ASSIGN
  162.         DATA (SPBEF(TASSIG,I),I=0,2)/0,-2,-2/
  163.         DATA (SPAFT(TASSIG,I),I=0,2)/1,-2,-2/
  164. C BACKSPACE
  165.         DATA (SPBEF(TBACKS,I),I=0,2)/0,-2,-2/
  166.         DATA (SPAFT(TBACKS,I),I=0,2)/1,-2,-2/
  167. C BLOCKDATA
  168.         DATA (SPBEF(TBLOCK,I),I=0,2)/0,-2,-2/
  169.         DATA (SPAFT(TBLOCK,I),I=0,2)/1,-2,-2/
  170. C CALL
  171.         DATA (SPBEF(TCALL,I),I=0,2)/0,-2,-2/
  172.         DATA (SPAFT(TCALL,I),I=0,2)/1,-2,-2/
  173. C CLOSE
  174.         DATA (SPBEF(TCLOSE,I),I=0,2)/0,-2,-2/
  175.         DATA (SPAFT(TCLOSE,I),I=0,2)/1,-2,-2/
  176. C COMMON
  177.         DATA (SPBEF(TCOMMO,I),I=0,2)/0,-2,-2/
  178.         DATA (SPAFT(TCOMMO,I),I=0,2)/1,-2,-2/
  179. C CONTINUE -- NO FOLLOWING SPACE
  180.         DATA (SPBEF(TCONTI,I),I=0,2)/0,-2,-2/
  181.         DATA (SPAFT(TCONTI,I),I=0,2)/0,-2,-2/
  182. C DATA
  183.         DATA (SPBEF(TDATA,I),I=0,2)/0,-2,-2/
  184.         DATA (SPAFT(TDATA,I),I=0,2)/1,-2,-2/
  185. C DO
  186.         DATA (SPBEF(TDO,I),I=0,2)/0,-2,-2/
  187.         DATA (SPAFT(TDO,I),I=0,2)/1,-2,-2/
  188. C DIMENSION
  189.         DATA (SPBEF(TDIMEN,I),I=0,2)/0,-2,-2/
  190.         DATA (SPAFT(TDIMEN,I),I=0,2)/1,-2,-2/
  191. C ELSE
  192.         DATA (SPBEF(TELSE,I),I=0,2)/0,-2,-2/
  193.         DATA (SPAFT(TELSE,I),I=0,2)/1,-2,-2/
  194. C ELSEIF
  195.         DATA (SPBEF(TELSIF,I),I=0,2)/0,-2,-2/
  196.         DATA (SPAFT(TELSIF,I),I=0,2)/1,-2,-2/
  197. C END
  198.         DATA (SPBEF(TEND,I),I=0,2)/0,-2,-2/
  199.         DATA (SPAFT(TEND,I),I=0,2)/1,-2,-2/
  200. C ENDFILE
  201.         DATA (SPBEF(TENDFI,I),I=0,2)/0,-2,-2/
  202.         DATA (SPAFT(TENDFI,I),I=0,2)/1,-2,-2/
  203. C ENDIF
  204.         DATA (SPBEF(TENDIF,I),I=0,2)/0,-2,-2/
  205.         DATA (SPAFT(TENDIF,I),I=0,2)/1,-2,-2/
  206. C ENTRY
  207.         DATA (SPBEF(TENTRY,I),I=0,2)/0,-2,-2/
  208.         DATA (SPAFT(TENTRY,I),I=0,2)/1,-2,-2/
  209. C EQUIVALENCE
  210.         DATA (SPBEF(TEQUIV,I),I=0,2)/0,-2,-2/
  211.         DATA (SPAFT(TEQUIV,I),I=0,2)/1,-2,-2/
  212. C EXTERNAL
  213.         DATA (SPBEF(TEXTER,I),I=0,2)/0,-2,-2/
  214.         DATA (SPAFT(TEXTER,I),I=0,2)/1,-2,-2/
  215. C FUNCTION
  216.         DATA (SPBEF(TFUNCT,I),I=0,2)/0,-2,-2/
  217.         DATA (SPAFT(TFUNCT,I),I=0,2)/1,-2,-2/
  218. C FORMAT
  219.         DATA (SPBEF(TFORMA,I),I=0,2)/0,-2,-2/
  220.         DATA (SPAFT(TFORMA,I),I=0,2)/1,-2,-2/
  221. C GOTO
  222.         DATA (SPBEF(TGOTO,I),I=0,2)/0,-2,-2/
  223.         DATA (SPAFT(TGOTO,I),I=0,2)/1,-2,-2/
  224. C IF
  225.         DATA (SPBEF(TIF,I),I=0,2)/0,-2,-2/
  226.         DATA (SPAFT(TIF,I),I=0,2)/1,-2,-2/
  227. C IMPLICIT
  228.         DATA (SPBEF(TIMPLI,I),I=0,2)/0,-2,-2/
  229.         DATA (SPAFT(TIMPLI,I),I=0,2)/1,-2,-2/
  230. C INQUIRE
  231.         DATA (SPBEF(TINQUI,I),I=0,2)/0,-2,-2/
  232.         DATA (SPAFT(TINQUI,I),I=0,2)/1,-2,-2/
  233. C INTRINSIC
  234.         DATA (SPBEF(TINTRI,I),I=0,2)/0,-2,-2/
  235.         DATA (SPAFT(TINTRI,I),I=0,2)/1,-2,-2/
  236. C OPEN
  237.         DATA (SPBEF(TOPEN,I),I=0,2)/0,-2,-2/
  238.         DATA (SPAFT(TOPEN,I),I=0,2)/1,-2,-2/
  239. C PARAMETER
  240.         DATA (SPBEF(TPARAM,I),I=0,2)/0,-2,-2/
  241.         DATA (SPAFT(TPARAM,I),I=0,2)/1,-2,-2/
  242. C PAUSE
  243.         DATA (SPBEF(TPAUSE,I),I=0,2)/0,-2,-2/
  244.         DATA (SPAFT(TPAUSE,I),I=0,2)/1,-2,-2/
  245. C PRINT
  246.         DATA (SPBEF(TPRINT,I),I=0,2)/0,-2,-2/
  247.         DATA (SPAFT(TPRINT,I),I=0,2)/1,-2,-2/
  248. C PROGRAM
  249.         DATA (SPBEF(TPROGR,I),I=0,2)/0,-2,-2/
  250.         DATA (SPAFT(TPROGR,I),I=0,2)/1,-2,-2/
  251. C READ
  252.         DATA (SPBEF(TREAD,I),I=0,2)/0,-2,-2/
  253.         DATA (SPAFT(TREAD,I),I=0,2)/1,-2,-2/
  254. C RETURN
  255.         DATA (SPBEF(TRETUR,I),I=0,2)/0,-2,-2/
  256.         DATA (SPAFT(TRETUR,I),I=0,2)/1,-2,-2/
  257. C REWIND
  258.         DATA (SPBEF(TREWIN,I),I=0,2)/0,-2,-2/
  259.         DATA (SPAFT(TREWIN,I),I=0,2)/1,-2,-2/
  260. C SAVE
  261.         DATA (SPBEF(TSAVE,I),I=0,2)/0,-2,-2/
  262.         DATA (SPAFT(TSAVE,I),I=0,2)/1,-2,-2/
  263. C STOP
  264.         DATA (SPBEF(TSTOP,I),I=0,2)/0,-2,-2/
  265.         DATA (SPAFT(TSTOP,I),I=0,2)/1,-2,-2/
  266. C SUBROUTINE
  267.         DATA (SPBEF(TSUBRO,I),I=0,2)/0,-2,-2/
  268.         DATA (SPAFT(TSUBRO,I),I=0,2)/1,-2,-2/
  269. C THEN -- NO FOLLOWING SPACE
  270.         DATA (SPBEF(TTHEN,I),I=0,2)/0,-2,-2/
  271.         DATA (SPAFT(TTHEN,I),I=0,2)/0,-2,-2/
  272. C TO
  273.         DATA (SPBEF(TTO,I),I=0,2)/1,-2,-2/
  274.         DATA (SPAFT(TTO,I),I=0,2)/1,-2,-2/
  275. C WRITE
  276.         DATA (SPBEF(TWRITE,I),I=0,2)/0,-2,-2/
  277.         DATA (SPAFT(TWRITE,I),I=0,2)/1,-2,-2/
  278. C Default for INTEGER*N/REAL*N/COMPLEX*N/LOGICAL*N/CHARACTER*anything
  279. C is no space between the keyword and the *
  280. C INTEGER
  281.         DATA (SPBEF(TINTEG,I),I=0,2)/0,-2,-2/
  282.         DATA (SPAFT(TINTEG,I),I=0,2)/-3,-2,-2/
  283. C REAL
  284.         DATA (SPBEF(TREAL,I),I=0,2)/0,-2,-2/
  285.         DATA (SPAFT(TREAL,I),I=0,2)/-3,-2,-2/
  286. C DOUBLEPRECISION
  287.         DATA (SPBEF(TDOUBL,I),I=0,2)/0,-2,-2/
  288.         DATA (SPAFT(TDOUBL,I),I=0,2)/1,-2,-2/
  289. C COMPLEX
  290.         DATA (SPBEF(TCOMPL,I),I=0,2)/0,-2,-2/
  291.         DATA (SPAFT(TCOMPL,I),I=0,2)/-3,-2,-2/
  292. C LOGICAL
  293.         DATA (SPBEF(TLOGIC,I),I=0,2)/0,-2,-2/
  294.         DATA (SPAFT(TLOGIC,I),I=0,2)/-3,-2,-2/
  295. C CHARACTER
  296.         DATA (SPBEF(TCHARA,I),I=0,2)/0,-2,-2/
  297.         DATA (SPAFT(TCHARA,I),I=0,2)/-3,-2,-2/
  298. C DOUBLE COMPLEX
  299.         DATA (SPBEF(TDCMPL,I),I=0,2)/0,-2,-2/
  300.         DATA (SPAFT(TDCMPL,I),I=0,2)/1,-2,-2/
  301. C ,
  302.         DATA (SPBEF(TCOMMA,I),I=0,2)/0,0,0/
  303.         DATA (SPAFT(TCOMMA,I),I=0,2)/0,0,0/
  304. C =
  305.         DATA (SPBEF(TEQUAL,I),I=0,2)/1,0,0/
  306.         DATA (SPAFT(TEQUAL,I),I=0,2)/1,0,0/
  307. C :
  308.         DATA (SPBEF(TCOLON,I),I=0,2)/0,0,0/
  309.         DATA (SPAFT(TCOLON,I),I=0,2)/0,0,0/
  310. C (
  311.         DATA (SPBEF(TLPARN,I),I=0,2)/-1,-1,-1/
  312.         DATA (SPAFT(TLPARN,I),I=0,2)/0,0,0/
  313. C )
  314.         DATA (SPBEF(TRPARN,I),I=0,2)/0,0,0/
  315.         DATA (SPAFT(TRPARN,I),I=0,2)/-1,-1,-1/
  316. C Relational operators
  317.         DATA ((SPBEF(I,J),J=0,2),I=TLE,TGT)/1,0,0,1,0,0,1,0,0,1,0,0,
  318.      +1,0,0,1,0,0/
  319.         DATA ((SPAFT(I,J),J=0,2),I=TLE,TGT)/1,0,0,1,0,0,1,0,0,1,0,0,
  320.      +1,0,0,1,0,0/
  321. C .AND.
  322.         DATA (SPBEF(TAND,I),I=0,2)/1,1,0/
  323.         DATA (SPAFT(TAND,I),I=0,2)/1,1,0/
  324. C .OR.
  325.         DATA (SPBEF(TOR,I),I=0,2)/1,1,0/
  326.         DATA (SPAFT(TOR,I),I=0,2)/1,1,0/
  327. C .EQV.
  328.         DATA (SPBEF(TEQV,I),I=0,2)/1,1,0/
  329.         DATA (SPAFT(TEQV,I),I=0,2)/1,1,0/
  330. C .NEQV.
  331.         DATA (SPBEF(TNEQV,I),I=0,2)/1,1,0/
  332.         DATA (SPAFT(TNEQV,I),I=0,2)/1,1,0/
  333. C .NOT.
  334.         DATA (SPBEF(TNOT,I),I=0,2)/1,0,0/
  335.         DATA (SPAFT(TNOT,I),I=0,2)/1,0,0/
  336. C *
  337.         DATA (SPBEF(TSTAR,I),I=0,2)/0,0,0/
  338.         DATA (SPAFT(TSTAR,I),I=0,2)/0,0,0/
  339. C **
  340.         DATA (SPBEF(TDSTAR,I),I=0,2)/0,0,0/
  341.         DATA (SPAFT(TDSTAR,I),I=0,2)/0,0,0/
  342. C +
  343.         DATA (SPBEF(TPLUS,I),I=0,2)/1,0,0/
  344.         DATA (SPAFT(TPLUS,I),I=0,2)/1,0,0/
  345. C -
  346.         DATA (SPBEF(TMINUS,I),I=0,2)/1,0,0/
  347.         DATA (SPAFT(TMINUS,I),I=0,2)/1,0,0/
  348. C /
  349.         DATA (SPBEF(TSLASH,I),I=0,2)/0,0,0/
  350.         DATA (SPAFT(TSLASH,I),I=0,2)/0,0,0/
  351. C //
  352.         DATA (SPBEF(TCNCAT,I),I=0,2)/0,0,0/
  353.         DATA (SPAFT(TCNCAT,I),I=0,2)/0,0,0/
  354. C integer constant (labels are done separately)
  355.         DATA (SPBEF(TDCNST,I),I=0,2)/0,0,0/
  356.         DATA (SPAFT(TDCNST,I),I=0,2)/0,0,0/
  357. C Logical constant
  358.         DATA (SPBEF(TLCNST,I),I=0,2)/0,0,0/
  359.         DATA (SPAFT(TLCNST,I),I=0,2)/0,0,0/
  360. C Real constant
  361.         DATA (SPBEF(TRCNST,I),I=0,2)/0,0,0/
  362.         DATA (SPAFT(TRCNST,I),I=0,2)/0,0,0/
  363. C Double precision constant
  364.         DATA (SPBEF(TPCNST,I),I=0,2)/0,0,0/
  365.         DATA (SPAFT(TPCNST,I),I=0,2)/0,0,0/
  366. C Character constant
  367.         DATA (SPBEF(TCCNST,I),I=0,2)/0,0,0/
  368.         DATA (SPAFT(TCCNST,I),I=0,2)/0,0,0/
  369. C Hollerith constant
  370.         DATA (SPBEF(THCNST,I),I=0,2)/0,0,0/
  371.         DATA (SPAFT(THCNST,I),I=0,2)/0,0,0/
  372. C Identifier
  373.         DATA (SPBEF(TNAME,I),I=0,2)/0,0,0/
  374.         DATA (SPAFT(TNAME,I),I=0,2)/0,0,0/
  375. C Field in a FORMAT statement
  376.         DATA (SPBEF(TFIELD,I),I=0,2)/0,0,0/
  377.         DATA (SPAFT(TFIELD,I),I=0,2)/0,0,0/
  378. C Scale factor in a FORMAT statement
  379.         DATA (SPBEF(TSCALE,I),I=0,2)/0,0,0/
  380.         DATA (SPAFT(TSCALE,I),I=0,2)/0,0,0/
  381. C <EOS>
  382.         DATA (SPBEF(TZEOS,I),I=0,2)/-2,-2,-2/
  383.         DATA (SPAFT(TZEOS,I),I=0,2)/-2,-2,-2/
  384. C Comment
  385.         DATA (SPBEF(TCMMNT,I),I=0,2)/-2,-2,-2/
  386.         DATA (SPAFT(TCMMNT,I),I=0,2)/-2,-2,-2/
  387. C FMT=
  388.         DATA (SPBEF(TFMTKD,I),I=0,2)/-2,0,0/
  389.         DATA (SPAFT(TFMTKD,I),I=0,2)/-2,0,0/
  390. C END=
  391.         DATA (SPBEF(TENDKD,I),I=0,2)/-2,0,0/
  392.         DATA (SPAFT(TENDKD,I),I=0,2)/-2,0,0/
  393. C ERR=
  394.         DATA (SPBEF(TERRKD,I),I=0,2)/-2,0,0/
  395.         DATA (SPAFT(TERRKD,I),I=0,2)/-2,0,0/
  396.  
  397. C *******************************EXTENDED TOKEN TYPES
  398. C
  399.         DATA TMPLUS/TMPLUV/,TMMINU/TMMINV/
  400.  
  401. C ******************************* Line break priorities
  402. C
  403.  
  404. C Monadic minus
  405.         DATA (BRPRIO(TMMINV,I),I=0,2)/0,0,0/
  406. C Monadic plus
  407.         DATA (BRPRIO(TMPLUV,I),I=0,2)/0,0,0/
  408. C End-of-file
  409.         DATA (BRPRIO(TZEOF,I),I=0,2)/0,0,0/
  410. C ASSIGN
  411.         DATA (BRPRIO(TASSIG,I),I=0,2)/20,20,20/
  412. C BACKSPACE
  413.         DATA (BRPRIO(TBACKS,I),I=0,2)/20,20,20/
  414. C BLOCKDATA
  415.         DATA (BRPRIO(TBLOCK,I),I=0,2)/20,20,20/
  416. C CALL
  417.         DATA (BRPRIO(TCALL,I),I=0,2)/20,20,20/
  418. C CLOSE
  419.         DATA (BRPRIO(TCLOSE,I),I=0,2)/20,20,20/
  420. C COMMON
  421.         DATA (BRPRIO(TCOMMO,I),I=0,2)/20,20,20/
  422. C CONTINUE
  423.         DATA (BRPRIO(TCONTI,I),I=0,2)/20,20,20/
  424. C DATA
  425.         DATA (BRPRIO(TDATA,I),I=0,2)/20,20,20/
  426. C DO
  427.         DATA (BRPRIO(TDO,I),I=0,2)/20,20,20/
  428. C DIMENSION
  429.         DATA (BRPRIO(TDIMEN,I),I=0,2)/20,20,20/
  430. C ELSE
  431.         DATA (BRPRIO(TELSE,I),I=0,2)/20,20,20/
  432. C ELSEIF
  433.         DATA (BRPRIO(TELSIF,I),I=0,2)/20,20,20/
  434. C END
  435.         DATA (BRPRIO(TEND,I),I=0,2)/20,20,20/
  436. C ENDFILE
  437.         DATA (BRPRIO(TENDFI,I),I=0,2)/20,20,20/
  438. C ENDIF
  439.         DATA (BRPRIO(TENDIF,I),I=0,2)/20,20,20/
  440. C ENTRY
  441.         DATA (BRPRIO(TENTRY,I),I=0,2)/20,20,20/
  442. C EQUIVALENCE
  443.         DATA (BRPRIO(TEQUIV,I),I=0,2)/20,20,20/
  444. C EXTERNAL
  445.         DATA (BRPRIO(TEXTER,I),I=0,2)/20,20,20/
  446. C FUNCTION
  447.         DATA (BRPRIO(TFUNCT,I),I=0,2)/20,20,20/
  448. C FORMAT
  449.         DATA (BRPRIO(TFORMA,I),I=0,2)/20,20,20/
  450. C GOTO
  451.         DATA (BRPRIO(TGOTO,I),I=0,2)/20,20,20/
  452. C IF
  453.         DATA (BRPRIO(TIF,I),I=0,2)/20,20,20/
  454. C IMPLICIT
  455.         DATA (BRPRIO(TIMPLI,I),I=0,2)/20,20,20/
  456. C INQUIRE
  457.         DATA (BRPRIO(TINQUI,I),I=0,2)/20,20,20/
  458. C INTRINSIC
  459.         DATA (BRPRIO(TINTRI,I),I=0,2)/20,20,20/
  460. C OPEN
  461.         DATA (BRPRIO(TOPEN,I),I=0,2)/20,20,20/
  462. C PARAMETER
  463.         DATA (BRPRIO(TPARAM,I),I=0,2)/20,20,20/
  464. C PAUSE
  465.         DATA (BRPRIO(TPAUSE,I),I=0,2)/20,20,20/
  466. C PRINT
  467.         DATA (BRPRIO(TPRINT,I),I=0,2)/20,20,20/
  468. C PROGRAM
  469.         DATA (BRPRIO(TPROGR,I),I=0,2)/20,20,20/
  470. C READ
  471.         DATA (BRPRIO(TREAD,I),I=0,2)/20,20,20/
  472. C RETURN
  473.         DATA (BRPRIO(TRETUR,I),I=0,2)/20,20,20/
  474. C REWIND
  475.         DATA (BRPRIO(TREWIN,I),I=0,2)/20,20,20/
  476. C SAVE
  477.         DATA (BRPRIO(TSAVE,I),I=0,2)/20,20,20/
  478. C STOP
  479.         DATA (BRPRIO(TSTOP,I),I=0,2)/20,20,20/
  480. C SUBROUTINE
  481.         DATA (BRPRIO(TSUBRO,I),I=0,2)/20,20,20/
  482. C THEN
  483.         DATA (BRPRIO(TTHEN,I),I=0,2)/20,20,20/
  484. C TO
  485.         DATA (BRPRIO(TTO,I),I=0,2)/20,20,20/
  486. C WRITE
  487.         DATA (BRPRIO(TWRITE,I),I=0,2)/20,20,20/
  488. C INTEGER
  489.         DATA (BRPRIO(TINTEG,I),I=0,2)/20,20,20/
  490. C REAL
  491.         DATA (BRPRIO(TREAL,I),I=0,2)/20,20,20/
  492. C DOUBLEPRECISION
  493.         DATA (BRPRIO(TDOUBL,I),I=0,2)/20,20,20/
  494. C COMPLEX
  495.         DATA (BRPRIO(TCOMPL,I),I=0,2)/20,20,20/
  496. C LOGICAL
  497.         DATA (BRPRIO(TLOGIC,I),I=0,2)/20,20,20/
  498. C CHARACTER
  499.         DATA (BRPRIO(TCHARA,I),I=0,2)/20,20,20/
  500. C DOUBLE COMPLEX
  501.         DATA (BRPRIO(TDCMPL,I),I=0,2)/20,20,20/
  502. C ,
  503.         DATA (BRPRIO(TCOMMA,I),I=0,2)/90,70,50/
  504. C =
  505.         DATA (BRPRIO(TEQUAL,I),I=0,2)/20,20,20/
  506. C :
  507.         DATA (BRPRIO(TCOLON,I),I=0,2)/88,68,48/
  508. C (
  509.         DATA (BRPRIO(TLPARN,I),I=0,2)/10,10,10/
  510. C )
  511.         DATA (BRPRIO(TRPARN,I),I=0,2)/50,30,20/
  512. C ** //
  513.         DATA (BRPRIO(TDSTAR,I),I=0,2)/72,52,32/
  514.         DATA (BRPRIO(TCNCAT,I),I=0,2)/72,52,32/
  515. C * /
  516.         DATA (BRPRIO(TSTAR,I),I=0,2)/74,54,34/
  517.         DATA (BRPRIO(TSLASH,I),I=0,2)/74,54,34/
  518. C + - (binary)
  519.         DATA (BRPRIO(TPLUS,I),I=0,2)/76,56,36/
  520.         DATA (BRPRIO(TMINUS,I),I=0,2)/76,56,36/
  521. C .LE. .LT. .EQ. .NE. .GT. .GE.
  522.         DATA (BRPRIO(TLE,I),I=0,2)/78,58,38/
  523.         DATA (BRPRIO(TLT,I),I=0,2)/78,58,38/
  524.         DATA (BRPRIO(TEQ,I),I=0,2)/78,58,38/
  525.         DATA (BRPRIO(TNE,I),I=0,2)/78,58,38/
  526.         DATA (BRPRIO(TGE,I),I=0,2)/78,58,38/
  527.         DATA (BRPRIO(TGT,I),I=0,2)/78,58,38/
  528. C .NOT.
  529.         DATA (BRPRIO(TNOT,I),I=0,2)/80,60,40/
  530. C .AND.
  531.         DATA (BRPRIO(TAND,I),I=0,2)/82,62,42/
  532. C .OR.
  533.         DATA (BRPRIO(TOR,I),I=0,2)/84,64,44/
  534. C .EQV. .NEQV.
  535.         DATA (BRPRIO(TEQV,I),I=0,2)/86,66,46/
  536.         DATA (BRPRIO(TNEQV,I),I=0,2)/86,66,46/
  537. C Everthing else from here on
  538.         DATA ((BRPRIO(I,J),J=0,2),I=TDCNST,TERRKD)/20,20,20,20,20,20,20,
  539.      +        20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,
  540.      +        20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20/
  541.  
  542. C************************************* Blank line insertion
  543. C
  544.  
  545.         DATA BLADEC/.TRUE./,BLCHAR/32/
  546.  
  547.         DATA (BLAFT(I),I=TMMINV,TENDFI)/18*0/
  548. C ENDIF
  549.         DATA BLAFT(TENDIF)/1/
  550.  
  551.         DATA (BLAFT(I),I=TENTRY,TFUNCT)/4*0/
  552. C FORMAT
  553.         DATA BLAFT(TFORMA)/1/
  554. C GOTO
  555.         DATA BLAFT(TGOTO)/1/
  556.         DATA (BLAFT(I),I=TIF,TPARAM)/6*0/
  557. C PAUSE
  558.         DATA BLAFT(TPAUSE)/1/
  559.         DATA (BLAFT(I),I=TPRINT,TREAD)/3*0/
  560. C RETURN
  561.         DATA BLAFT(TRETUR)/1/
  562.         DATA BLAFT(TREWIN),BLAFT(TSAVE)/0,0/
  563. C STOP
  564.         DATA BLAFT(TSTOP)/1/
  565.         DATA (BLAFT(I),I=TSUBRO,TERRKD)/47*0/
  566.  
  567. C** Blank lines before:
  568.  
  569.         DATA (BLBEF(I),I=TMMINV,TDIMEN)/14*0/
  570. C ELSE
  571.         DATA BLBEF(TELSE)/1/
  572. C ELSEIF
  573.         DATA BLBEF(TELSIF)/1/
  574.         DATA (BLBEF(I),I=TEND,TFUNCT)/7*0/
  575. C FORMAT
  576.         DATA BLBEF(TFORMA)/1/
  577.         DATA (BLBEF(I),I=TGOTO,TERRKD)/62*0/
  578.  
  579.         DATA LMARGS/7/,RMARGS/72/,LMARGC/2/,RMARGC/72/
  580.         DATA CONCHR/43/
  581.         DATA LABELF/1/,LABELC/1/
  582.         DATA INDDO/4/,INDIF/4/,INDCON/-2/,INDCMT/.FALSE./
  583.         DATA SEQINI,SEQINC,SEQDIG,SEQFIL,SEQRQD/1,1,4,32,.FALSE./
  584.         DATA FLBINI/9000/,FLBINC/10/,SLBINI/10/,SLBINC/10/
  585.         DATA RLBFMT,RLBSTM,MOVEF,DOCONI,IOTHCO/5*.FALSE./
  586.         DATA CMMODE/0/,CBOX/0/,CBTOP/42/,CBSIDE/42/,CMCHAR/32/
  587.         DATA KWCASE/0/,IDCASE,STRCAS,CMCASE,FFCASE/4*0/
  588.         DATA VLEN,DLEN/2*0/
  589.         DATA DLUP,TRACE,INDDOC,DELSED,BRKLIF/5*.FALSE./
  590.         DATA ERRCMT/.TRUE./
  591.         DATA CVTHFM,RMOPCF,FMSBRK/3*.FALSE./
  592.  
  593.         END
  594.  
  595.  
  596. C ----------------------------------------------------------------------
  597. C
  598. C       T N A B L K  -  Token Name Block Data (for option parsing)
  599. C
  600.  
  601.         BLOCK DATA TNABLK
  602.  
  603. C---------------------------------------------------------
  604. C    TOOLPACK/1    Release: 2.4
  605. C---------------------------------------------------------
  606. C
  607. C  TKLAST = LAST TOKEN NUMBER
  608. C
  609.       INTEGER TZEOF ,TASSIG,TBACKS,TBLOCK,TCALL ,TCLOSE,TCOMMO,TCONTI,
  610.      +        TDATA ,TDO   ,TDIMEN,TELSE ,TELSIF,TEND  ,TENDFI,TENDIF,
  611.      +        TENTRY,TEQUIV,TEXTER,TFUNCT,TFORMA,TGOTO ,TIF   ,TIMPLI,
  612.      +        TINQUI,TINTRI,TOPEN ,TPARAM,TPAUSE,TPRINT,TPROGR,TREAD ,
  613.      +        TRETUR,TREWIN,TSAVE ,TSTOP ,TSUBRO,TTHEN ,TTO   ,TWRITE,
  614.      +        TINTEG,TREAL ,TDOUBL,TCOMPL,TLOGIC,TCHARA,TDCMPL,TCOMMA,
  615.      +        TEQUAL,TCOLON,TLPARN,TRPARN,TLE   ,TLT   ,TEQ   ,TNE   ,
  616.      +        TGE   ,TGT   ,TAND  ,TOR   ,TEQV  ,TNEQV ,TNOT  ,TSTAR ,
  617.      +        TDSTAR,TPLUS ,TMINUS,TSLASH,TCNCAT,TDCNST,TLCNST,TRCNST,
  618.      +        TPCNST,TCCNST,THCNST,TNAME ,TFIELD,TSCALE,TZEOS ,TCMMNT,
  619.      +        TFMTKD,TENDKD,TERRKD,TKLAST
  620.       PARAMETER (TZEOF = 1,TASSIG= 2,TBACKS= 3,TBLOCK= 4,TCALL = 5,
  621.      +           TCLOSE= 6,TCOMMO= 7,TCONTI= 8,TDATA = 9,TDO   =10,
  622.      +           TDIMEN=11,TELSE =12,TELSIF=13,TEND  =14,TENDFI=15,
  623.      +           TENDIF=16,TENTRY=17,TEQUIV=18,TEXTER=19,TFUNCT=20,
  624.      +           TFORMA=21,TGOTO =22,TIF   =23,TIMPLI=24,TINQUI=25,
  625.      +           TINTRI=26,TOPEN =27,TPARAM=28,TPAUSE=29,TPRINT=30,
  626.      +           TPROGR=31,TREAD =32,TRETUR=33,TREWIN=34,TSAVE =35,
  627.      +           TSTOP =36,TSUBRO=37,TTHEN =38,TTO   =39,TWRITE=40,
  628.      +           TINTEG=41,TREAL =42,TDOUBL=43,TCOMPL=44,TLOGIC=45,
  629.      +           TCHARA=46,TDCMPL=47,TCOMMA=48,TEQUAL=49,TCOLON=50,
  630.      +           TLPARN=51,TRPARN=52,TLE   =53,TLT   =54,TEQ   =55,
  631.      +           TNE   =56,TGE   =57,TGT   =58,TAND  =59,TOR   =60,
  632.      +           TEQV  =61,TNEQV =62,TNOT  =63,TSTAR =64,TDSTAR=65,
  633.      +           TPLUS =66,TMINUS=67,TSLASH=68,TCNCAT=69,TDCNST=70,
  634.      +           TLCNST=71,TRCNST=72,TPCNST=73,TCCNST=74,THCNST=75,
  635.      +           TNAME =76,TFIELD=77,TSCALE=78,TZEOS =79,TCMMNT=80,
  636.      +           TFMTKD=81,TENDKD=82,TERRKD=83,TKLAST=83)
  637.  
  638.  
  639.         COMMON/TNAMES/TOKNAM
  640.         CHARACTER*6 TOKNAM(-2:TKLAST)
  641.  
  642.         INTEGER TMMINV,TMPLUV
  643.         PARAMETER (TMMINV=-2,TMPLUV=-1)
  644.  
  645.         SAVE
  646.  
  647.         DATA TOKNAM(TMMINV),TOKNAM(TMPLUV)/'TMMINU','TMPLUS'/
  648.         DATA TOKNAM(0)/'======'/
  649.         DATA
  650.      +TOKNAM(TZEOF )/'TZEOF '/,TOKNAM(TASSIG)/'TASSIG'/,
  651.      +TOKNAM(TBACKS)/'TBACKS'/,TOKNAM(TBLOCK)/'TBLOCK'/,
  652.      +TOKNAM(TCALL )/'TCALL '/,TOKNAM(TCLOSE)/'TCLOSE'/,
  653.      +TOKNAM(TCOMMO)/'TCOMMO'/,TOKNAM(TCONTI)/'TCONTI'/,
  654.      +TOKNAM(TDATA )/'TDATA '/,TOKNAM(TDO   )/'TDO   '/,
  655.      +TOKNAM(TDIMEN)/'TDIMEN'/,TOKNAM(TELSE )/'TELSE '/,
  656.      +TOKNAM(TELSIF)/'TELSIF'/,TOKNAM(TEND  )/'TEND  '/,
  657.      +TOKNAM(TENDFI)/'TENDFI'/,TOKNAM(TENDIF)/'TENDIF'/,
  658.      +TOKNAM(TENTRY)/'TENTRY'/,TOKNAM(TEQUIV)/'TEQUIV'/,
  659.      +TOKNAM(TEXTER)/'TEXTER'/,TOKNAM(TFUNCT)/'TFUNCT'/,
  660.      +TOKNAM(TFORMA)/'TFORMA'/,TOKNAM(TGOTO )/'TGOTO '/,
  661.      +TOKNAM(TIF   )/'TIF   '/,TOKNAM(TIMPLI)/'TIMPLI'/,
  662.      +TOKNAM(TINQUI)/'TINQUI'/,TOKNAM(TINTRI)/'TINTRI'/,
  663.      +TOKNAM(TOPEN )/'TOPEN '/,TOKNAM(TPARAM)/'TPARAM'/,
  664.      +TOKNAM(TPAUSE)/'TPAUSE'/,TOKNAM(TPRINT)/'TPRINT'/,
  665.      +TOKNAM(TPROGR)/'TPROGR'/,TOKNAM(TREAD )/'TREAD '/,
  666.      +TOKNAM(TRETUR)/'TRETUR'/,TOKNAM(TREWIN)/'TREWIN'/,
  667.      +TOKNAM(TSAVE )/'TSAVE '/,TOKNAM(TSTOP )/'TSTOP '/,
  668.      +TOKNAM(TSUBRO)/'TSUBRO'/,TOKNAM(TTHEN )/'TTHEN '/
  669.         DATA
  670.      +TOKNAM(TTO   )/'TTO   '/,TOKNAM(TWRITE)/'TWRITE'/,
  671.      +TOKNAM(TINTEG)/'TINTEG'/,TOKNAM(TREAL )/'TREAL '/,
  672.      +TOKNAM(TDOUBL)/'TDOUBL'/,TOKNAM(TCOMPL)/'TCOMPL'/,
  673.      +TOKNAM(TLOGIC)/'TLOGIC'/,TOKNAM(TCHARA)/'TCHARA'/,
  674.      +TOKNAM(TDCMPL)/'TDCMPL'/,
  675.      +TOKNAM(TCOMMA)/'TCOMMA'/,TOKNAM(TEQUAL)/'TEQUAL'/,
  676.      +TOKNAM(TCOLON)/'TCOLON'/,TOKNAM(TLPARN)/'TLPARN'/,
  677.      +TOKNAM(TRPARN)/'TRPARN'/,TOKNAM(TLE   )/'TLE   '/,
  678.      +TOKNAM(TLT   )/'TLT   '/,TOKNAM(TEQ   )/'TEQ   '/,
  679.      +TOKNAM(TNE   )/'TNE   '/,TOKNAM(TGE   )/'TGE   '/,
  680.      +TOKNAM(TGT   )/'TGT   '/,TOKNAM(TAND  )/'TAND  '/,
  681.      +TOKNAM(TOR   )/'TOR   '/,TOKNAM(TEQV  )/'TEQV  '/,
  682.      +TOKNAM(TNEQV )/'TNEQV '/,TOKNAM(TNOT  )/'TNOT  '/,
  683.      +TOKNAM(TSTAR )/'TSTAR '/,TOKNAM(TDSTAR)/'TDSTAR'/,
  684.      +TOKNAM(TPLUS )/'TPLUS '/,TOKNAM(TMINUS)/'TMINUS'/,
  685.      +TOKNAM(TSLASH)/'TSLASH'/,TOKNAM(TCNCAT)/'TCNCAT'/,
  686.      +TOKNAM(TDCNST)/'TDCNST'/,TOKNAM(TLCNST)/'TLCNST'/,
  687.      +TOKNAM(TRCNST)/'TRCNST'/,TOKNAM(TPCNST)/'TPCNST'/,
  688.      +TOKNAM(TCCNST)/'TCCNST'/,TOKNAM(THCNST)/'THCNST'/
  689.         DATA
  690.      +TOKNAM(TNAME )/'TNAME '/,TOKNAM(TSCALE)/'TSCALE'/,
  691.      +TOKNAM(TFIELD)/'TFIELD'/,TOKNAM(TZEOS )/'TZEOS '/,
  692.      +TOKNAM(TCMMNT)/'TCMMNT'/,TOKNAM(TFMTKD)/'TFMTKD'/,
  693.      +TOKNAM(TENDKD)/'TENDKD'/,TOKNAM(TERRKD)/'TERRKD'/
  694.  
  695.         END
  696.